/**
 * 数值处理工具函数
 */

/**
 * 格式化数值显示
 * @param value 数值
 * @param unit 单位，默认为'万元'
 * @param precision 精度，默认为2位小数
 * @returns 格式化后的字符串
 */
export const formatValue = (
  value: number | null | undefined,
  unit = '万元',
  precision = 2
): string => {
  if (value === null || value === undefined) return '-';
  return `${Number(value).toFixed(precision)}${unit}`;
};

/**
 * 格式化百分比显示
 * @param value 数值
 * @param precision 精度，默认为2位小数
 * @returns 格式化后的百分比字符串
 */
export const formatPercent = (value: number | null | undefined, precision = 2): string => {
  if (value === null || value === undefined) return '-';
  return `${Number(value).toFixed(precision)}%`;
};

/**
 * 计算总金额
 * @param amount1 第一个金额
 * @param amount2 第二个金额
 * @param precision 精度，默认为6位小数
 * @returns 总金额
 */
export const calculateTotal = (
  amount1: number | string,
  amount2: number | string,
  precision = 6
): number => {
  const num1 = Number(amount1) || 0;
  const num2 = Number(amount2) || 0;
  return Number((num1 + num2).toFixed(precision));
};

/**
 * 计算完成率
 * @param actual 实际值
 * @param target 目标值
 * @param precision 精度，默认为2位小数
 * @returns 完成率百分比
 */
export const calculateCompletionRate = (actual: number, target: number, precision = 2): number => {
  if (!actual || !target) return 0;
  return Number(((actual / target) * 100).toFixed(precision));
};
